home *** CD-ROM | disk | FTP | other *** search
/ START Magazine / START VOL 3 NO 7.st / VCR_ORG.ARC / OUT_MOD.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-11-11  |  7.2 KB  |  284 lines

  1. {$M+}
  2. {$E+}
  3.  
  4. program Output_Module;
  5.  
  6. {$I A:GEMSUBS.PAS }
  7. {$I A:AUXSUBS.PAS }
  8.  
  9.   Const
  10.        {$I B:VCR_Cnst.Pas }
  11.  
  12.   Type
  13.        {$I B:VCR_Type.Pas }
  14.  
  15.   Var
  16.        {$I B:VCR_Var.Pas }
  17.  
  18.  
  19.   procedure DateStr( Tape_No : integer ; Var Str : string);
  20.      External ;
  21.  
  22.  
  23.  procedure Alert_Box( L1, L2, L3, L4, L5 : integer ;
  24.                       S1, S2, S3 : string ; n : integer ;
  25.                      var Result : integer ) ;
  26.      
  27.    var
  28.        i          : integer;
  29.        IndexArray : array[1..5] of integer;
  30.        OutStr     : array[0..9] of string;
  31.        OutLine    : Str255;
  32.        InStr      : array[1..3] of string;
  33.        
  34.  
  35.    begin
  36.      OutStr[0] := ' ';
  37.  
  38.      OutStr[1] := '  This Program   ';
  39.      OutStr[2] := '  Will NOT Work  '; 
  40.      OutStr[3] := ' in Low_Res Mode ';
  41.  
  42.      OutStr[4] := 'Max Number of Entries';
  43.      OutStr[5] := '(740 Entries Allowed)';
  44.  
  45.      OutStr[6] := '   Must Close A Window   ';
  46.      OutStr[7] := '       To Continue';
  47.      OutStr[8] := 'Limit of Six Open Windows';
  48.  
  49.      OutStr[9] := ' Error In File Access ';
  50.  
  51.      IndexArray[1] := L1;
  52.      IndexArray[2] := L2;
  53.      IndexArray[3] := L3;
  54.      IndexArray[4] := L4;
  55.      IndexArray[5] := L5;
  56.  
  57.      InStr[1] := S1;
  58.      InStr[2] := S2;
  59.      InStr[3] := S3;
  60.  
  61.      OutLine := '[1][ ';
  62.      for i := 1 to 4 do
  63.          OutLine := Concat(OutLine, OutStr[IndexArray[i]], ' | ');
  64.      OutLine := Concat(OutLine, OutStr[IndexArray[5]],' ][ ', InStr[1]);
  65.  
  66.      Len := Length(InStr[2]);
  67.      if Len > 0 then
  68.         begin
  69.           OutLine := Concat(OutLine, ' | ', InStr[2]);
  70.           Len := Length(InStr[3]);
  71.           if Len > 0 then
  72.              OutLine := Concat(OutLine, ' | ', InStr[3]);
  73.         end;
  74.  
  75.      OutLine := Concat(OutLine, ' ]');
  76.      Result := Do_Alert(OutLine, n);
  77.     end;
  78.  
  79.  
  80.   procedure Print_Contents;
  81.  
  82.     var
  83.        i, j,
  84.        Next_Rec,
  85.        Page,
  86.        Line_No,
  87.        Len       : integer ;
  88.        Letter    : boolean ;
  89.  
  90.      procedure Top_Margin;
  91.  
  92.        var
  93.           i : integer;
  94.  
  95.         begin
  96.           Writeln(Printer);
  97.           Writeln(Printer);
  98.           Writeln(Printer, 'Movie':20, 'Tape #':41, 'Index':8);
  99.           for i := 1 to 10 do
  100.               Write(Printer, Sp);
  101.           for i := 1 to 59 do
  102.               Write(Printer, '=');
  103.           Writeln(Printer);
  104.           Writeln(Printer);
  105.           Line_No := 1;
  106.         end;
  107.  
  108.      procedure Bottom_Margin;
  109.  
  110.        var
  111.            i : integer;
  112.  
  113.         begin
  114.           Writeln(Printer);
  115.           for i := 1 to 10 do
  116.               Write(Printer, Sp);
  117.           for i := 1 to 59 do
  118.               Write(Printer, '=');
  119.           Writeln(Printer);
  120.           Writeln(Printer);
  121.           Writeln(Printer, 'Page ':42, Page);
  122.           Writeln(Printer);
  123.           Writeln(Printer);
  124.         end;
  125.  
  126.      procedure Check_Line;
  127.  
  128.         begin
  129.           if Line_No > 55 then
  130.              begin
  131.                Bottom_Margin;
  132.                Line_No := 0;
  133.                Page := Page + 1;
  134.              end;
  135.         end;
  136.  
  137.  
  138.     begin
  139.       Line_No := 0;
  140.       Page    := 1;
  141.  
  142.       for i := 0 to 26 do
  143.           begin
  144.             Letter := false;
  145.             Next_Rec := VCR_Point[1,i];
  146.             While Next_Rec <> 0 do
  147.                   begin
  148.                     Letter := true;
  149.                     if Line_No = 0 then Top_Margin;
  150.                     for j := 1 to 10 do
  151.                         Write(Printer, Sp);
  152.                     Write(Printer, VCR_Name[Next_Rec]);
  153.                     Len := Length(VCR_Name[Next_Rec]);
  154.                     Write(Printer,Sp, Sp);
  155.                     for j := Len to 40 do
  156.                         Write(Printer, '-');
  157.                     Write(Printer, VCR_Tape[0,VCR_TapeNo[Next_Rec]]:6);
  158.                     Writeln(Printer, VCR_Count[Next_Rec]:8);
  159.                     Line_No := Line_No + 1;
  160.                     Check_Line;
  161.                     Next_Rec := VCR_Next[1,Next_Rec];
  162.                   end;
  163.             if Letter then
  164.                begin
  165.                  Writeln(Printer);
  166.                  Check_Line;
  167.                  if Line_No = 0 then
  168.                     Top_Margin
  169.                  else
  170.                     Line_No := Line_No + 1;
  171.                  Check_Line;
  172.                end;
  173.           end;
  174.       for i := Line_No to 55 do
  175.           Writeln(Printer);
  176.       Bottom_Margin;
  177.     end;
  178.  
  179.  
  180.   procedure Print_VCR( Cur_Rec : integer ) ;
  181.  
  182.     var
  183.         i, j,
  184.         Len       : integer;
  185.         PrintStr  : array[1..15] of string;
  186.         Tape_No   : integer;
  187.  
  188.     begin
  189.       Tape_No := Cur_Rec;
  190.  
  191.       PrintStr[8] := '';
  192.  
  193.       if VCR_Check[1,Tape_No] then
  194.          PrintStr[8] := Concat(PrintStr[8],'Hi Fi ');
  195.  
  196.       if VCR_Check[2,Tape_No] then
  197.          PrintStr[8] := Concat(PrintStr[8],' Stereo ');
  198.  
  199.       DateStr(VCR_Tape[0,Tape_No], PrintStr[1]);
  200.       Len := Length(PrintStr[1]);
  201.       if Len < 5 then
  202.          for j := 1 to 5 - Len do
  203.              PrintStr[1] := Concat(Sp, PrintStr[1]);
  204.  
  205.  
  206.       PrintStr[2] := VCR_Name[VCR_Tape[1,Tape_No]];
  207.       DateStr(VCR_Count[VCR_Tape[1,Tape_No]], PrintStr[9]);
  208.  
  209.       PrintStr[3] := VCR_Name[VCR_Tape[2,Tape_No]];
  210.       DateStr(VCR_Count[VCR_Tape[2,Tape_No]], PrintStr[10]);
  211.  
  212.       PrintStr[4] := VCR_Name[VCR_Tape[3,Tape_No]];
  213.       DateStr(VCR_Count[VCR_Tape[3,Tape_No]], PrintStr[11]);
  214.  
  215.       PrintStr[5] := VCR_Name[VCR_Tape[4,Tape_No]];
  216.       DateStr(VCR_Count[VCR_Tape[4,Tape_No]],PrintStr[12]);
  217.  
  218.       PrintStr[6] := VCR_Name[VCR_Tape[5,Tape_No]];
  219.       DateStr(VCR_Count[VCR_Tape[5,Tape_No]],PrintStr[13]);
  220.  
  221.       PrintStr[7] := VCR_Name[VCR_Tape[6,Tape_No]];
  222.       DateStr(VCR_Count[VCR_Tape[6,Tape_No]],PrintStr[14]);
  223.  
  224.  
  225.       for i := 2 to 7 do
  226.           begin
  227.             Len := Length(PrintStr[i]);
  228.             if Len > 25 then
  229.                PrintStr[i] := Copy(PrintStr[i],1,25);
  230.           end;
  231.  
  232.       for i := 9 to 14 do
  233.           begin
  234.             Len := Length(PrintStr[i]);
  235.             if Len < 5 then
  236.                for j := 1 to 5 - Len do
  237.                    PrintStr[i] := Concat(Sp, PrintStr[i]);
  238.             Len := Length(PrintStr[i - 7]);
  239.             if (PrintStr[i] = '    0') AND (Len = 0) then
  240.                PrintStr[i] := '     ';
  241.           end;
  242.  
  243.       Writeln(Printer, '  Tape #', PrintStr[1], Sp, Sp, PrintStr[8]);
  244.       for i := 2 to 4 do
  245.           Writeln(Printer, PrintStr[i + 7], Sp, PrintStr[i]);
  246.       Writeln(Printer);
  247.       Writeln(Printer);
  248.  
  249.       Len := Length(PrintStr[5]);
  250.       if Len > 0 then
  251.          begin
  252.            Writeln(Printer);
  253.            for i := 5 to 7 do
  254.                Writeln(Printer, PrintStr[i + 7], Sp, PrintStr[i]);
  255.            Writeln(Printer);
  256.            Writeln(Printer);
  257.          end;
  258.     end;
  259.  
  260.  
  261.   procedure Multi_PrtVCR;
  262.  
  263.     var
  264.        i,
  265.        Next_Rec  : integer ;
  266.  
  267.     begin
  268.       if VCR_Retrieve then
  269.          Print_VCR(VCR_TapeNo[Name_Select])
  270.       else
  271.          begin
  272.            Next_Rec := VCR_Order[1,0];
  273.            while Next_Rec <> 0 do
  274.                  begin
  275.                    Print_VCR(Next_Rec);
  276.                    Next_Rec := VCR_Order[1,Next_Rec];
  277.                  end;
  278.          end;
  279.     end;
  280.  
  281.  
  282. BEGIN
  283. END.
  284.